<?php

/**
 * API：模型测试模块
 */

namespace app\controller\api;

use app\BaseController;
use app\model\User;
use app\model\Role;

class Model extends BaseController
{
    //新增
    public function add()
    {
        $data = new User;
        $data->name = 'test';
        $data->password = 'test';
        $data->save();
        return json($data);
    }

    //修改
    public function update()
    {
        $data = User::find(); //官方建议：取出数据后，再修改
        $data->password = 'test';
        $data->save();
        return json($data);
    }

    //删除
    public function delete()
    {
        //方式1：删除当前模型
        // $data = User::find(11);
        // $data->delete();

        //方式2：根据主键删除
        $data = User::destroy(10);
        // $data = User::destroy([4,5]);//批量

        //方式3：根据条件删除
        // $data = User::destroy(function($query){
        //     $query->where('id','>',5);
        // });

        return json($data);
    }

    //列表
    public function list()
    {
        $data = User::where('id', '>', 0)->select();
        return json($data);
    }

    //详情
    public function detail()
    {
        $data = User::find(1); //参数：主键
        $data->sexText = $data->sexText; //不存在的字段需要调用赋值
        return json($data);
    }

    //关联表-详情
    public function detailWith()
    {
        $data = User::with('roles')->find(1); //查询“用户1”的信息（含角色）
        return json($data);
    }

    //关联表-详情
    public function listWith()
    {
        $data = Role::with('users')->find(1); //查询“管理员”角色的所有用户
        return json($data);
    }
}
